package com.example.springbootmongoDB.repository;

import com.example.springbootmongoDB.model.User;

import java.util.List;

public interface UserRepository {
    /**
     * 保存对象
     *
     * @param s
     * @param <S>
     * @return
     */
    public <S extends User> S save(S s);

    /**
     * 批量保存对象
     *
     * @param iterable
     * @param <S>
     * @return
     */
    public <S extends User> List<S> saveAll(Iterable<S> iterable);

    /**
     * 根据id查找
     *
     * @param id
     * @return
     */
    public User findById(Long id);

    /**
     * 查找所有
     *
     * @return
     */
    public List<User> findAll();

    /**
     * 批量查询
     *
     * @param iterable
     * @return
     */
    public Iterable<User> findAllById(Iterable<Integer> iterable);

    /**
     * 根据id 删除
     *
     * @param id
     */
    public void deleteById(Long id);

    /**
     * 根据对象删除
     *
     * @param user
     */
    public void delete(User user);

    /**
     * 删除所有
     */
    public void deleteAll();
}